package com.interface_;

import javafx.concurrent.Worker;

/**
 * @Author 小闽
 * @Date 2024/9/14 8:51
 * @PackageName: com.interface_
 * @ClassName: Interface03
 * @Description: 接口应用场景
 * @Version 1.0
 */
public class Interface03 {
    public static void main(String[] args) {
        /**
         * 需求：3个程序员，编写三个类，分别完成对Mysql，Oracle，DB2数据库的连接connect
         */
        // 实例化mysql对象
        Mysql mysql = new Mysql();
        work(mysql);
        // 实例化oracle对象
        Oracle oracle = new Oracle();
        work(oracle);
        // 实例化DB2对象
        DB2 db2 = new DB2();
        work(db2);

        // 证明接口中的属性，只能是final的，而且是public static final修饰符。
        // 通过类名.属性名可以发现接口中的属性是public访问、在静态方法中可以通过类名.属性名访问静态属性。
        //接口中属性的访问形式：接口名.属性名。
        System.out.println(ID.n1);
        // 在静态方法中无法为final修饰的变量的值修改。
//        ID.n1 = 200;
    }
    // 编写一个方法，用于将对象传入接口中
    public static void work(DBInterface dbInterface){
        dbInterface.connect();
        dbInterface.close();
    }
}
//一个类同时可以实现多个接口。
interface IB{

}
interface IC{

}
class CC implements IB,IC{

}
//接口中的属性，只能是final的，而且是public static final修饰符。
interface ID{
    public static final int n1 = 100;
}
//一个接口不能继承其他的类，但是可以继承多个别的接口
//interface IE extends CC{
//
//}
interface IF extends IC, ID{
    
}